/*
 *  Laboratorio de Finanzas Computacionales
 */

package bm.forms;

import java.util.regex.Pattern;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import bm.data.Libro;


public class LibroForm extends org.apache.struts.action.ActionForm {
    
    private Libro libro;
    
    
    /**
     *  Constructor
     */
    public LibroForm() {
        super();
        
        libro = new Libro();
    }
    
    
    /**
     *  Validacion
     */
    public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {
        
        ActionErrors errors = new ActionErrors();
        
        
        if (this.getTitulo().equals("")) {
            errors.add("titulo", new ActionMessage("error.campoObligatorio"));
        }

        if (this.getAutor().equals("")) {
            errors.add("autor", new ActionMessage("error.campoObligatorio"));
        }

        if (this.getCodigo().equals("")) {
            errors.add("codigo", new ActionMessage("error.campoObligatorio"));
        
        }else if (!Pattern.matches("[A-Z]{3}-[0-9]{3}", this.getCodigo())) {
            errors.add("codigo", new ActionMessage("error.codigoIncorrecto"));
        }

        
        return errors;
    }

    
    public Libro getLibro(){
        return libro;
    }
    
    
    
    public String getTitulo() {
        return libro.getTitulo();
    }

    public void setTitulo(String titulo) {
        libro.setTitulo(titulo);
    }

    public String getAutor() {
        return libro.getAutor();
    }

    public void setAutor(String autor) {
        libro.setAutor(autor);
    }

    public int getPaginas() {
        return libro.getPaginas();
    }

    public void setPaginas(int paginas) {
        libro.setPaginas(paginas);
    }

    public String getCodigo() {
        return libro.getCodigo();
    }

    public void setCodigo(String codigo) {
        libro.setCodigo(codigo);
    }
    
}
